From eacdeec29ee66617c77057680a0f7c79fe12db23 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 8 Oct 2017 14:29:27 -0400 Subject: [PATCH] Add a blendmode node reftest The Vulkan renderer doesn't pass this, currently. --- testsuite/gsk/blendmode.node | Bin 0 -> 640320 bytes testsuite/gsk/blendmode.png | Bin 0 -> 1983 bytes testsuite/gsk/test-render-nodes.c | 54 ++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 testsuite/gsk/blendmode.node create mode 100644 testsuite/gsk/blendmode.png diff --git a/testsuite/gsk/blendmode.node b/testsuite/gsk/blendmode.node new file mode 100644 index 0000000000000000000000000000000000000000..c6a9e85e697c9e5acdaef650fd4084b65225c2d3 GIT binary patch literal 640320 zcmeI1F|KY|niZegK_G!(7FA=w=<*N_1~|AaRT(8DkU-f3U}QK*J)E9Fl3mq#^#8F} z?32Qdo63A=t^MLFX;palKm4!%_MiXs-~afh|M{Q(#~=Un7jav%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qC zAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F z2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_> zav%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qC zAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F z2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_> zav%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qC zAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F z2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_> zav%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qC zAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F z2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_> zav%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qC zAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F z2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_> zav%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qC zAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F z2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_>av%qCAO~_F2XY_> zav%qCAO~_F2XY_>a^N>O@bi!UX@M4Kffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i z7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMM zXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`J zffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i z7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMM zXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`J zffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i z7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMM zXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`J zffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i z7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMM zXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`J zffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i z7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMM zXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`J zffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i z7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMM zXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`Jffi_i7HEMMXn_`J zffi_i7HEMMXn_`Jf#0;i&p&?r+`ny*138cbIgkT6kOMi8138cbIgkT6kOMi8138cb zIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6 zkOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8 z138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cb zIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6 zkOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8 z138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cb zIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6 zkOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8 z138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cb zIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6 zkOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8 z138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cb zIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6 zkOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8 z138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cb zIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6kOMi8138cbIgkT6 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 literal 0 HcmV?d00001 diff --git a/testsuite/gsk/blendmode.png b/testsuite/gsk/blendmode.png new file mode 100644 index 0000000000000000000000000000000000000000..36a8203d8c57528b05be5cd1f6d9a5e847c91aad GIT binary patch literal 1983 zcmeAS@N?(olHy`uVBq!ia0vp^zZe*pA~@K9EbryNKLRPXByV>YhW{YAVDIwD3=Hfg zo-U3d6?5L+Iq3V;K*BAs+NJWs@c_XujDK6%Bu;mmb3L24xvws@c&hK0v)Mh_4EJXx zpV@u?q2Rwef0+*aS1;iZuwvnmWoqGLbZTc<=-hBY(cy)F0{w+Qlziv5Id%H;=WE6C z^XI?YxxF?&=icshuWwc6owIzu<9Rnu2Y!}He$6kVF)KOeZ{@ekKNsQj!&!^(ccM2+ zvd?kC?!yCVGCDVUnEMp5`#!<=obC6poMVj3aRk{0Np^0t#|_Cig7ZdC@%g=?vkMPs z;t1@VV+WhgT0D@z5fNsO?-b`BO_M3$!Vyig3pXSf^I5dvh{D0{{bxIX0buV73?M}u z0aSN3?auArx33kiuaCc5od5scjos1%O literal 0 HcmV?d00001 diff --git a/testsuite/gsk/test-render-nodes.c b/testsuite/gsk/test-render-nodes.c index f39f725540..f3d65f4999 100644 --- a/testsuite/gsk/test-render-nodes.c +++ b/testsuite/gsk/test-render-nodes.c @@ -154,6 +154,34 @@ cairo (void) return node; } +static GskRenderNode * +cairo2 (void) +{ + GskRenderNode *node; + cairo_surface_t *surface; + cairo_t *cr; + int i, j; + + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 200, 200); + cr = cairo_create (surface); + + cairo_set_source_rgb (cr, 1, 1, 1); + + for (i = 0; i < 10; i++) + for (j = 0; j < 10; j++) + { + cairo_rectangle (cr, i*20, j*20, 10, 10); + cairo_fill (cr); + } + + node = gsk_cairo_node_new_for_surface (&GRAPHENE_RECT_INIT (0, 0, 200, 200), surface); + + cairo_destroy (cr); + cairo_surface_destroy (surface); + + return node; +} + static GskRenderNode * repeat (void) { @@ -205,6 +233,31 @@ repeat (void) return container; } +static GskRenderNode * +blendmode (void) +{ + GskRenderNode *child1; + GskRenderNode *child2; + GskRenderNode *transform; + GskRenderNode *container; + graphene_matrix_t matrix; + + child1 = cairo (); + child2 = cairo2 (); + + graphene_matrix_init_translate (&matrix, &(const graphene_point3d_t) { 50, 50, 0 }); + transform = gsk_transform_node_new (child2, &matrix); + gsk_render_node_unref (child2); + child2 = transform; + + container = gsk_blend_node_new (child1, child2, GSK_BLEND_MODE_HUE); + + gsk_render_node_unref (child1); + gsk_render_node_unref (child2); + + return container; +} + static const struct { const char *name; GskRenderNode * (* func) (void); @@ -212,6 +265,7 @@ static const struct { { "colors.node", colors }, { "cairo.node", cairo }, { "repeat.node", repeat }, + { "blendmode.node", blendmode }, }; /*** test setup ***/ -- 2.30.2